/*
 * @Author: your name
 * @Date: 2020-08-23 15:21:35
 * @LastEditTime: 2020-12-03 11:24:45
 * @LastEditors: your name
 * @Description: In User Settings Edit
 * @FilePath: \adminPC\src\api\menber.js
 */

import request from '@/utils/request'
const basePath = '/jpower-user'

/**
 * @description: 用户列表
 * @param {type} Object
 * @return {type} Promise
 */

// | 参数名称         | 是否必须 | 示例 | 备注                                                        |
// | :--------------- | :------- | :--- | :---------------------------------------------------------- |
// | orgId            | 否       |      | 部门ID                                                      |
// | loginId          | 否       |      | 用户名                                                      |
// | userName         | 否       |      | 用户姓名                                                    |
// | idNo             | 否       |      | 证件号码                                                    |
// | userType         | 否       |      | 用户类型 0=系统用户,1=普通用户,2=单位用户,3=会员,9=匿名用户 |
// | telephone        | 否       |      | 手机号                                                      |
// | activationStatus | 否       |      | 激活状态 1=激活,0=未激活                                    |
// | pageNum          | 是       |      | 第几页                                                      |
// | pageSize         | 是       |      | 每页长度                                                    |
export function list(params) {
  return request({
    url: basePath + '/core/user/list',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'get',
    params
  })
}

/**
 * @description: 查询详细信息
 * @param {type}
 * @return {type}
 */
export function userInfo(id) {
  return request({
    url: basePath + '/core/user/get',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'get',
    params: { id }
  })
}

/**
 * @description: 创建用户
 * @param {type}
 * @return {type}
 */
/*
| 参数名称  | 参数类型 | 是否必须 | 示例 | 备注                                                         |
| :-------- | :------- | :------- | :--- | :----------------------------------------------------------- |
| loginId   | *T*文本  | 是       |      | 用户名                                                       |
| orgId     | *T*文本  | 否       |      | 部门ID                                                       |
| userName  | *T*文本  | 是       |      | 用户姓名                                                     |
| idType    | *T*文本  | 否       |      | 证件类型 1=身份证,2=中国护照,3=台胞证,4=外国护照,5=外国人永居证 |
| idNo      | *T*文本  | 否       |      | 证件号码                                                     |
| userType  | *T*文本  | 否       |      | 用户类型 0=系统用户,1=普通用户,2=单位用户,3=会员,9=匿名用户  |
| birthday  | *T*文本  | 否       |      | 出生日期 yyyy-MM-dd                                          |
| email     | *T*文本  | 否       |      | 邮箱                                                         |
| telephone | *T*文本  | 否       |      | 电话                                                         |
| address   | *T*文本  | 否       |      | 地址                                                         |
| postCode  | *T*文本  | 否       |      | 邮编
*/
export function add(params) {
  return request({
    url: basePath + '/core/user/add',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'post',
    params
  })
}

/**
 * @description: 删除用户
 * @param {ids:String} 多个id 1,2,3,4
 * @return {type} Promise
 */
export function remove(ids) {
  return request({
    url: basePath + '/core/user/delete',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'delete',
    params: { ids }
  })
}

/**
 * @description: 修改用户
 * @param {Object}
 * @return {type} Promise
 */
/*
| 参数名称  | 参数类型 | 是否必须 | 示例 | 备注                                                   |
| :-------- | :------- | :------- | :--- | :----------------------------------------------------- |
| id        | *T*文本  | 是       |      |                                                        |
| orgId     | *T*文本  | 否       |      | 部门ID                                                 |
| loginId   | *T*文本  | 否       |      | 登录用户名                                             |
| userName  | *T*文本  | 否       |      | 用户姓名                                               |
| idType    | *T*文本  | 否       |      | 1=身份证,2=中国护照,3=台胞证,4=外国护照,5=外国人永居证 |
| idNo      | *T*文本  | 否       |      | 证件号码                                               |
| userType  | *T*文本  | 否       |      | 0=系统用户,1=普通用户,2=单位用户,3=会员,9=匿名用户     |
| birthday  | *T*文本  | 否       |      | 出生日期                                               |
| email     | *T*文本  | 否       |      | 邮箱                                                   |
| telephone | *T*文本  | 否       |      | 电话                                                   |
| address   | *T*文本  | 否       |      | 地址                                                   |
| postCode  | *T*文本  | 否       |      | 邮编                                                   |
*/
export function update(params) {
  return request({
    url: basePath + '/core/user/update',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'put',
    params
  })
}

/**
 * @description: 重置用户登陆密码
 * @param {String} ids -主键 多个逗号分割
 * @return {type}
 */
export function resetPassword(ids) {
  return request({
    url: basePath + '/core/user/resetPassword',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'put',
    params: { ids }
  })
}

/**
 * @description: 导出用户
 * @param {type}
 * @return {type}
 */
/*
| 参数名称         | 是否必须 | 示例 | 备注 |
| :--------------- | :------- | :--- | :--- |
| orgId            | 是       |      |      |
| loginId          | 是       |      |      |
| userName         | 是       |      |      |
| idNo             | 是       |      |      |
| userType         | 是       |      |      |
| telephone        | 是       |      |      |
| activationStatus | 是       |      |      |
*/
export function printUser(params) {
  return request({
    url: basePath + '/core/user/exportUser',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'get',
    params
  })
}

/**
 * @description: 下载用户导入模板
 * @param {*}
 * @return {*}
 */
export function importTemplate() {
  return request({
    url: basePath + '/core/user/downloadTemplate',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'get'
  })
}

/**
 * @description: 批量导入用户
 * @param {type} file
 * @return {type}
 */
export function importPeople(data) {
  return request({
    url: basePath + '/core/user/importUser',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'post',
    data
  })
}

/**
 * @description: 更新密码
 * @param {Object} { oldPW, newPW }
 * @return {Promise}
 */
export function updatePassword(params) {
  return request({
    url: basePath + '/core/user/updatePassword',
    method: 'get',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    params
  })
}

/**
 * @description: 查询用户下所有角色
 * @param {*} userId
 * @return {*}
 */
export function getUserRole(userId) {
  return request({
    url: basePath + '/core/user/userRole',
    method: 'get',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    params: { userId }
  })
}

